2   class="dynamics365Account-dialog"
 
   3   aria-label="New Dynamics365Account"
 
   5   <form name="dynamics365AccountForm" class="md-inline-form" novalidate>
 
   6     <md-toolbar class="md-accent md-hue-2">
 
   8         class="md-toolbar-tools"
 
  10         layout-align="space-between center"
 
  12         <span class="title">{{ vm.title | translate }}</span>
 
  13         <md-button class="md-icon-button" ng-click="vm.closeDialog()">
 
  15             md-font-icon="icon-close"
 
  16             aria-label="Close dialog"
 
  22     <md-dialog-content ms-scroll>
 
  23       <div class="error-list">
 
  25           ng-repeat="error in vm.errors"
 
  28           layout-align="space-between center"
 
  31             <span class="message">{{error.message}}</span>
 
  32             <span class="type">({{error.type}})</span>
 
  34           <md-button class="md-icon-button">
 
  36               md-font-icon="icon-alert-box"
 
  37               aria-label="alert error"
 
  43       <md-input-container class="md-block">
 
  44         <label translate="INTEGRATIONS.NAME">Name</label>
 
  48           ng-model="vm.dynamics365Account.name"
 
  54           ng-messages="dynamics365AccountForm['name'].$error"
 
  55           ng-show="dynamics365AccountForm['name'].$touched"
 
  58           <div ng-message="required">
 
  59             <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED"
 
  60               >Name field is required</span
 
  65       <md-input-container class="md-block">
 
  66         <label translate="INTEGRATIONS.USERNAME">Username</label>
 
  70           ng-model="vm.dynamics365Account.username"
 
  75           ng-messages="dynamics365AccountForm['username'].$error"
 
  76           ng-show="dynamics365AccountForm['username'].$touched"
 
  79           <div ng-message="required">
 
  80             <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED"
 
  81               >Username field is required</span
 
  86       <md-input-container class="md-block">
 
  87         <label translate="INTEGRATIONS.PASSWORD">Password</label>
 
  91           ng-model="vm.dynamics365Account.password"
 
  92           placeholder="Password"
 
  94           translate-attr-placeholder="INTEGRATIONS.PASSWORD"
 
  98           ng-messages="dynamics365AccountForm['password'].$error"
 
 101           <div ng-message="required">
 
 102             <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED"
 
 103               >Password field is required</span
 
 106           <div ng-message="pattern">
 
 107             <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN"
 
 108               >Must contain at least 8 characters, with a minimum of 1 lowercase
 
 109               letter, 1 uppercase letter, 1 numeric character and 1 special
 
 110               character ~!?*@#$%^&-_=+[{]}.</span
 
 114       </md-input-container>
 
 116       <md-input-container class="md-block">
 
 117         <label translate="INTEGRATIONS.URI">Uri</label>
 
 121           ng-model="vm.dynamics365Account.remoteUri"
 
 126           ng-messages="dynamics365AccountForm['remoteUri'].$error"
 
 127           ng-show="dynamics365AccountForm['remoteUri'].$touched"
 
 130           <div ng-message="required">
 
 131             <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED"
 
 132               >Uri field is required</span
 
 135           <div ng-message="url">
 
 136             <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL"
 
 137               >Uri must be a valid url http://www.xcally.com</span
 
 141       </md-input-container>
 
 142       <md-input-container class="md-block">
 
 143         <label translate="INTEGRATIONS.TENANTID">TenantId</label>
 
 147           ng-model="vm.dynamics365Account.tenantId"
 
 152           ng-messages="dynamics365AccountForm['tenantId'].$error"
 
 153           ng-show="dynamics365AccountForm['tenantId'].$touched"
 
 156           <div ng-message="required">
 
 157             <span translate="INTEGRATIONS.ERRORS.TENANTID_REQUIRED"
 
 158               >TenantId field is required</span
 
 162       </md-input-container>
 
 163       <md-input-container class="md-block">
 
 164         <label translate="INTEGRATIONS.CLIENTID">ClientId</label>
 
 168           ng-model="vm.dynamics365Account.clientId"
 
 173           ng-messages="dynamics365AccountForm['clientId'].$error"
 
 174           ng-show="dynamics365AccountForm['clientId'].$touched"
 
 177           <div ng-message="required">
 
 178             <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED"
 
 179               >ClientId field is required</span
 
 183       </md-input-container>
 
 184       <md-input-container class="md-block">
 
 185         <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>
 
 189           ng-model="vm.dynamics365Account.clientSecret"
 
 194           ng-messages="dynamics365AccountForm['clientSecret'].$error"
 
 195           ng-show="dynamics365AccountForm['clientSecret'].$touched"
 
 198           <div ng-message="required">
 
 199             <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED"
 
 200               >ClientSecret field is required</span
 
 204       </md-input-container>
 
 205       <md-input-container class="md-block">
 
 206         <label translate="INTEGRATIONS.MOTIONPROXYADDRESS"
 
 207           >MotionProxyAddress</label
 
 212           ng-model="vm.dynamics365Account.serverUrl"
 
 216           <span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span>
 
 219           ng-messages="dynamics365AccountForm['serverUrl'].$error"
 
 220           ng-show="dynamics365AccountForm['serverUrl'].$touched"
 
 223           <div ng-message="required">
 
 224             <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED"
 
 225               >MotionProxyAddress field is required</span
 
 228           <div ng-message="url">
 
 230               translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL"
 
 231               >MotionProxyAddress must be a valid url
 
 232               http://www.xcally.com</span
 
 236       </md-input-container>
 
 237       <md-input-container class="md-block">
 
 238         <label translate="INTEGRATIONS.DESCRIPTION">Description</label>
 
 242           ng-model="vm.dynamics365Account.description"
 
 246           ng-messages="dynamics365AccountForm['description'].$error"
 
 247           ng-show="dynamics365AccountForm['description'].$touched"
 
 250           <div ng-message="required">
 
 251             <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED"
 
 252               >Description field is required</span
 
 256       </md-input-container>
 
 258       <div class="error-list">
 
 260           ng-repeat="error in vm.errors"
 
 263           layout-align="space-between center"
 
 266             <span class="message">{{error.message}}</span>
 
 267             <span class="type">({{error.type}})</span>
 
 269           <md-button class="md-icon-button">
 
 271               md-font-icon="icon-alert-box"
 
 272               aria-label="alert error"
 
 282       layout-align="space-between center"
 
 283       ng-if="!vm.crudPermissions.readOnly"
 
 285       <div layout="row" layout-align="start center">
 
 288           ng-if="vm.crudPermissions.canEdit && !vm.newDynamics365Account"
 
 289           ng-click="vm.saveDynamics365Account()"
 
 290           class="send-button md-accent md-raised"
 
 291           ng-disabled="dynamics365AccountForm.$invalid || dynamics365AccountForm.$pristine"
 
 293           translate="INTEGRATIONS.SAVE"
 
 294           translate-attr-aria-label="INTEGRATIONS.SAVE"
 
 301           ng-if="vm.crudPermissions.canEdit && vm.newDynamics365Account"
 
 302           ng-click="vm.addNewDynamics365Account()"
 
 303           class="send-button md-accent md-raised"
 
 304           ng-disabled="dynamics365AccountForm.$invalid"
 
 306           translate="INTEGRATIONS.ADD_DYNAMICS365ACCOUNT"
 
 307           translate-attr-aria-label="INTEGRATIONS.ADD_DYNAMICS365ACCOUNT"
 
 309           ADD DYNAMICS365ACCOUNT
 
 314           class="md-icon-button"
 
 315           ng-if="vm.crudPermissions.canDelete && !vm.newDynamics365Account"
 
 316           ng-click="vm.deleteDynamics365Account($event)"
 
 319           translate-attr-aria-label="INTEGRATIONS.DELETE"
 
 321           <md-icon md-font-icon="icon-delete"></md-icon>
 
 323             ><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip